home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Plus 2004 #6
/
Amiga Plus CD - 2004 - No. 06.iso
/
AmiSoft
/
Util
/
libs
/
ExtraLib.lha
/
Extra
/
include
/
rhosigma
/
settings.h
< prev
next >
Wrap
C/C++ Source or Header
|
2004-05-30
|
6KB
|
134 lines
/* ___________________________________________________________________________
** |*************************************************************************|
** |*|¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|*|¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|*|
** |*| Set TAB to 4 for best readable file layout. |*| C++ MaxonDev 4.0 |*|
** |*|______________________________________________|*|____________________|*|
** |*************************************************************************|
** |*|¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|*|¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|*|
** |*| |*| $Id: settings.h (18.04.03) |*|
** |*| ###### ###### |*| RhoSigma Source based on NDK 3.1 Includes 40.15 |*|
** |*| ## ## ## # |*| _________________________________________________ |*|
** |*| ## ## ## |*| |*|
** |*| ###### ## |*| Useful defines and extensions for NDK includes |*|
** |*| ## ## |*| |*|
** |*| ## ## # |*| ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ |*|
** |*| ## ###### |*| Copyright © 1998-2003 RhoSigma, Roland Heyder |*|
** |*| |*| All Rights Reserved. |*|
** |*|_______________|*|___________________________________________________|*|
** |*************************************************************************|
** ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
*/
#ifndef RHOSIGMA_SETTINGS_H
#define RHOSIGMA_SETTINGS_H
#ifndef EXEC_TYPES_H
#include <exec/types.h>
#endif
/** enhanced booleans **/
#ifndef UPPER /* Signum-Werte zur Verwendung in */
#define UPPER 1L /* Variablen des Typs BOOL */
#endif
#ifndef EQUAL
#define EQUAL 0L
#endif
#ifndef LOWER
#define LOWER -1L
#endif
/** for DisplayAlert() **/
#define DATPOS_C -1 /* Text zentrieren */
#define DATPOS_L -2 /* Text linksbündig */
#define DATPOS_R -3 /* Text rechtsbündig */
/*** rhosigma / DATEXT() ***
*»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
* Dieses Macro erstellt einen Teilstring des Parameterstrings der Intuition-
* Routine »DisplayAlert()«. Wahlweise kann der Text automatisch zentriert,
* oder links- bzw. rechtsbündig ausgerichtet werden.
*-----------------------------------------------------------------------------
* Definiert: settings.h (Copyright © 1998-2003 RhoSigma, Roland Heyder)
*
* Schablone: Name/A, xPos/A/N, yPos/A/N, String/A, EndFlag/N/S
*
* Parameter: Name --> ein beliebiger Name als ID für diesen Teilstring
*
* xPos --> x-Position des Textes,
* oder einer der oben definierten DATPOS-Werte.
*
* yPos --> y-Position des Textes,
* Ausrichtung nach BaseLine des Fonts (topaz/8)
*
* String --> der Text selbst aber ohne ("") Anführungszeichen
*
* EndFlag --> - TRUE , dann endet hier der Parameterstring
* - FALSE, dann MUSS noch ein weiterer Teilstring
* (Macro-Aufruf) folgen.
*
* Bemerkung: Leider gestattet der Macro-Aufbau sowie die Initialisierungs-
* Regeln in C/C++ und dazu noch die Macken einiger Compiler keinen
* vollständigen Aufbau des Parameterstrings. Aus diesem Grunde ist
* es in C/C++ erforderlich, die einzelnen Teilstrings vor der Be-
* nutzung noch mittels der ebenfalls hier beschriebenen Funktion
* »DAJOIN()« abschließend vorzubereiten.
*
* Ein Beispiel für die Benutzung dieses Macros finden Sie in
* der Datei »demo/AlertDemo.C«.
*
* ACHTUNG: Die einzelnen Teilstrings, die später zu einem Parameterstring
* ¯¯¯¯¯¯¯¯ gehören, müssen auf JEDEN FALL direkt nacheinander deklariert
* werden, während zwischen zwei kompletten Parameterstrings aber
* durchaus auch andere Deklarationen gemacht werden können.
*
* Siehe auch: »DAJOIN()«
*«««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««*/
#define DATEXT(Name, xPos, yPos, String, EndFlag) \
typedef struct { \
WORD da_PosX; \
UBYTE da_PosY; \
TEXT da_Text[sizeof(#String)+(3-((sizeof(#String)-1)&3))]; \
UBYTE da_Cont; \
} datext_##Name; \
STATIC datext_##Name Name = {xPos,yPos,#String,!EndFlag};
/*** rhosigma / DAJOIN() ***
*»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
* Diese Funktion dient der abschließenden Vorbereitung der mittels »DATEXT()«
* initialisierten Parameterstrings zur Verwendung mit »DisplayAlert()«. Idealer
* Weise sollte man diese Funktion als erste innerhalb von »main()« aufrufen.
* Die Funktion ist Bestandteil der mitgelieferten »rhosigma.lib«, welche Sie
* mit Ihrem Projekt linken sollten.
*-----------------------------------------------------------------------------
* Synopsis: VOID DAJOIN (Count, ...)
*
* Eingaben: Count --> (UWORD) Anzahl der übergebenen Teilstrings
*
* ... --> (&ID) nacheinander die Adressen (Referenzen) der
* einzelnen Teilstrings
*
* Bemerkung: Mehrfacher Aufruf für jeden einzelnen Teilstring ist möglich,
* aber durch die variable Argumentenliste eigentlich überflüssig,
* da man so auch alle Teilstrings auf einmal angeben kann.
*
* Ein Beispiel für die Benutzung dieser Funktion finden Sie in
* der Datei »demo/AlertDemo.C«.
*
* ACHTUNG: Diese Funktion muß auch dann aufgerufen werden, wenn der Para-
* ¯¯¯¯¯¯¯¯ meterstring nur aus einem einzigen Teilstring besteht, da das
* Macro »DATEXT()« keine vollständige Initialisierung des gleichen
* vornehmen kann. Das wird alles erst durch »DAJOIN()« erledigt !!
*
* Siehe auch: »DATEXT()«
*«««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««*/
#ifndef RHOSIGMA_H
#include <rhosigma/rhosigma.h>
#endif
#endif /* RHOSIGMA_SETTINGS_H */